/** 
 * Copyright (C), 2010-2012, TIETIAO Software Co.,Ltd. ALL RIGHTS RESERVED. 
 * File name:LabelService.java
 * Version:1.0
 * Date:2011-12-6
 * Description: 与标签相关的业务接口
 * author:zhijian.zhang
 */
package com.tietiao.service.label;

import java.util.List;

import com.tietiao.common.util.PageModel;
import com.tietiao.dao.model.Lable;

public interface LabelService {
	/**
	 * 
	 * 功能：批量添加用户标签表数据
	 * 
	 * @author: zhijian.zhang
	 * @Date: 2011-12-8
	 * 
	 * @param userId
	 *            用户ID
	 * @param labels
	 *            标签名称 多个标签以空格相隔
	 * 
	 * @return 用户标签ID，多个标签以都好相隔
	 */
	public String addLabels(int userId, String labels);

	/**
	 * 
	 * 功能：批量更新用户标签商品数量（商品数量+1）
	 * 
	 * @author: zhijian.zhang
	 * @Date: 2011-12-8
	 * 
	 * @param labelIds
	 *            用户标签ID，多个标签以逗号相隔
	 * @param addFlag
	 *            true 表示加一 false 表示减一
	 */
	public void addOrSubOneLabelCommodityNums(String labelIds, boolean addFlag);

	/**
	 * 功能：批量更新被关注数量
	 * 
	 * @author: zhijian.zhang
	 * @Date: 2011-12-8
	 * 
	 * @param labelIds
	 *            用户标签ID，多个标签以逗号相隔
	 * @param attendFlag
	 *            true 表示关注(被关注数+1) false（被关注数 - 1）
	 */
	public void addOrSubOneAttenNums(String labelIds,boolean attendFlag);

	/**
	 * 
	 * 功能：批量更新标签商品贴条数量
	 * 
	 * @author: zhijian.zhang
	 * @Date: 2011-12-8
	 * 
	 * @param commodityIds
	 *            用户贴条商品ID，多个商品以逗号相隔
	 * @param tietiaoFlag
	 *            true(贴条) +1 false(撕条) -1
	 */
	public void addOrSubOneTietiaoNum(String commodityIds, boolean tietiaoFlag);

	/**
	 * 
	 * 功能：通过标签对象条件查找符合的分页对象
	 * 
	 * @author: zhijian.zhang
	 * @Date: 2011-12-8
	 * 
	 * @param lable
	 *            标签对象(支持userId(相等),attentionNum、commodityTietiaoNum、
	 *            commodityNum（大于等于） 的字段的查询 labelName(模糊))
	 * @param orderClause
	 *            排序方式
	 * @param pageNo
	 *            当前页
	 * @param pageSize
	 *            每页显示数量
	 * @return PageModel<Lable> 标签分页对象
	 */
	public PageModel<Lable> getLablePageModels(Lable lable, String orderClause,
			int pageNo, int pageSize);

	/**
	 * 
	 * 功能：通过标签对象条件查找符合的标签对象列表
	 * 
	 * @author: zhijian.zhang
	 * @Date: 2011-12-8
	 * 
	 * @param lable
	 *            标签对象(支持userId(相等),attentionNum、commodityTietiaoNum、
	 *            commodityNum（大于等于） 的字段的查询 labelName(模糊) )
	 * @param orderClause
	 *            排序方式
	 * @return List<Lable> 标签分页对象
	 */
	public List<Lable> getLables(Lable lable, String orderClause);
	
	/**
	 * 
	 * 功能：获取用户常用个人标签
	 * @author: zhijian.zhang
	 * @Date: 2011-12-15
	 *
	 * @param userId
	 * @return
	 */
	public List<String> getPersionCommonLables(int userId) ;

	/**
	 * 功能：获取标签信息
	 * @author: TT_LOVE
	 * @Date: 2012-2-19
	 *
	 * @return
	 */
	public List<Lable> getLabelInfo();
}
